Python์ ์ฌ์ฉํ์ฌ ์์ ์ค๋ฅ ์์ ์ ํ๊ตฌํ๊ณ , ํ๋นํธ ์์ ํ ๊ธฐ์ ์ ์ค์ ์ ๋ก๋๋ค. ์์ ๊ฒฐ๋ง์ ์์ค์ ์ํํ๊ณ ๋ด๊ฒฐํจ์ฑ ์์ ์ปดํจํฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
Python ์์ ์ค๋ฅ ์์ : ํ๋นํธ ์์ ํ
์์ ์ปดํจํ ์ ์ํ, ์ฌ๋ฃ ๊ณผํ, ์ธ๊ณต์ง๋ฅ๊ณผ ๊ฐ์ ๋ถ์ผ์ ํ๋ช ์ ์ผ์ผํฌ ์์ฒญ๋ ์ ์ฌ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ ์์คํ ์ ๋ณธ์ง์ ์ผ๋ก ๋ ธ์ด์ฆ์ ์ทจ์ฝํ์ฌ ๊ณ์ฐ ์ ํ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ ํ์ํฌ ์ ์๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด๋ฌํ ๋ฏผ๊ฐ์ฑ์ ์์ ์ ๋ณด์ ๊ธฐ๋ณธ ๋จ์์ธ ํ๋นํธ์ ์ฌ์ธํ ํน์ฑ์์ ๋น๋กฏ๋๋ฉฐ, ํ๋นํธ๋ ํ๊ฒฝ์ ์ํด ์ฝ๊ฒ ๊ต๋๋ฉ๋๋ค. ์์ ์ค๋ฅ ์์ (QEC)์ ์ ๋ขฐํ ์ ์๊ณ ํ์ฅ ๊ฐ๋ฅํ ์์ ์ปดํจํฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ Python์ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ ํ๋นํธ ์์ ํ ๊ธฐ์ ์ ์ด์ ์ ๋ง์ถฐ QEC์ ํ์ ๊ฐ๋ ์ ํ๊ตฌํฉ๋๋ค.
์์ ๊ฒฐ๋ง์ ์์ค์ ๋์
0 ๋๋ 1์ธ ๊ณ ์ ๋นํธ์ ๋ฌ๋ฆฌ ํ๋นํธ๋ ๋ ์ํ์ ์ค์ฒฉ์ ๋์์ ์กด์ฌํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค์ฒฉ์ ์์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ณ ์ ์ปดํจํฐ์ ๊ธฐ๋ฅ์ ํจ์ฌ ๋ฐ์ด๋๋ ๊ณ์ฐ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ค์ฒฉ์ ๊นจ์ง๊ธฐ ์ฝ์ต๋๋ค. ์์ ๊ฒฐ๋ง์ ์์ค์ ํ๊ฒฝ๊ณผ์ ์ํธ์์ฉ์ผ๋ก ์ธํด ์์ ์ ๋ณด๊ฐ ์์ค๋๋ ํ์์ ๋งํฉ๋๋ค. ์ด๋ฌํ ์ํธ์์ฉ์ ํ๋นํธ๊ฐ ๋ฌด์์๋ก ์ํ๋ฅผ ์ ํํ๊ฑฐ๋ ์์ ๊ฒฐ๋ง์์ ์๊ฒ ํ์ฌ ๊ณ์ฐ์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค. ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋นํธ ํ๋ฆฝ ์ค๋ฅ: |0โฉ ์ํ์ ํ๋นํธ๊ฐ |1โฉ๋ก ๋ค์งํ๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ.
- ์์ ํ๋ฆฝ ์ค๋ฅ: |0โฉ์ |1โฉ ์ํ ์ฌ์ด์ ์๋ ์์์ด ๋ค์งํ๋ ๊ฒฝ์ฐ.
์ค๋ฅ ์์ ์์ด๋ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋น ๋ฅด๊ฒ ์ถ์ ๋์ด ์์ ๊ณ์ฐ์ ๋ฌด์ฉ์ง๋ฌผ๋ก ๋ง๋ญ๋๋ค. ๋ฌธ์ ๋ ํ๋นํธ๋ฅผ ์ง์ ์ธก์ ํ์ง ์๊ณ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ณ ์์ ํ๋ ๊ฒ์ ๋๋ค. ์ง์ ์ธก์ ์ ์ค์ฒฉ์ ๋ถ๊ดด์ํค๊ณ ์์ ์ ๋ณด๋ฅผ ํ๊ดดํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ ์ค๋ฅ ์์ ์ ์๋ฆฌ
์์ ์ค๋ฅ ์์ ์ ๋ ผ๋ฆฌ ํ๋นํธ๋ผ๊ณ ํ๋ ๋ ๋ง์ ์์ ๋ฌผ๋ฆฌ์ ํ๋นํธ์ ์์ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด๋ฌํ ์ค๋ณต์ฑ์ ํตํด ์ธ์ฝ๋ฉ๋ ์ ๋ณด๋ฅผ ์ง์ ์ธก์ ํ์ง ์๊ณ ๋ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ณ ์์ ํ ์ ์์ต๋๋ค. QEC ์ฒด๊ณ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ๋จ๊ณ๋ฅผ ํฌํจํฉ๋๋ค:
- ์ธ์ฝ๋ฉ: ๋ ผ๋ฆฌ ํ๋นํธ๋ ํน์ ์ค๋ฅ ์์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ค ํ๋นํธ ์ํ๋ก ์ธ์ฝ๋ฉ๋ฉ๋๋ค.
- ์ค๋ฅ ๊ฐ์ง: ์์ ์ ์ธก์ ์ผ๋ก๋ ์๋ ค์ง ํจ๋ฆฌํฐ ๊ฒ์ฌ๊ฐ ์ค๋ฅ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ์ํ๋ฉ๋๋ค. ์ด๋ฌํ ์ธก์ ์ ํ๋นํธ์ ์ค์ ์ํ๋ฅผ ๋๋ฌ๋ด์ง ์์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ข ๋ฅ์ ์ค๋ฅ์ธ์ง๋ฅผ ๋ํ๋ ๋๋ค.
- ์ค๋ฅ ์์ : ์ค๋ฅ ์ฆํ๊ตฐ(์์ ์ ์ธก์ ๊ฒฐ๊ณผ)์ ๊ธฐ๋ฐ์ผ๋ก, ๋ฌผ๋ฆฌ์ ํ๋นํธ์ ์์ ์์ ์ด ์ ์ฉ๋์ด ๋ ผ๋ฆฌ ํ๋นํธ์ ์๋ ์ํ๋ฅผ ๋ณต์ํฉ๋๋ค.
- ๋์ฝ๋ฉ: ๋ง์ง๋ง์ผ๋ก, ์ธ์ฝ๋ฉ๋ ๋ ผ๋ฆฌ ํ๋นํธ๋ก๋ถํฐ์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ๋์ฝ๋ฉ๋์ด์ผ ํฉ๋๋ค.
์ฌ๋ฌ ๊ฐ์ง QEC ์ฝ๋๊ฐ ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ๊ฐ ์ฝ๋๋ ๊ณ ์ ํ ์ฅ์ ๊ณผ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ์ฅ ์ ์๋ ค์ง ์ฝ๋ ์ค ์ผ๋ถ๋ Shor ์ฝ๋, Steane ์ฝ๋ ๋ฐ ํ๋ฉด ์ฝ๋๋ฅผ ํฌํจํฉ๋๋ค.
์์ ์ค๋ฅ ์์ ์ฝ๋
Shor ์ฝ๋
Shor ์ฝ๋๋ ๊ฐ์ฅ ์ด๊ธฐ์ ๊ฐ๋จํ QEC ์ฝ๋ ์ค ํ๋์ ๋๋ค. ํ๋์ ๋ ผ๋ฆฌ ํ๋นํธ๋ฅผ ์ธ์ฝ๋ฉํ๊ธฐ ์ํด 9๊ฐ์ ๋ฌผ๋ฆฌ์ ํ๋นํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋นํธ ํ๋ฆฝ ๋ฐ ์์ ํ๋ฆฝ ์ค๋ฅ ๋ชจ๋๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค. ์ธ์ฝ๋ฉ ํ๋ก์ธ์ค๋ ๋ฌผ๋ฆฌ์ ํ๋นํธ ๊ฐ์ ์ฝํ ์ํ๋ฅผ ์์ฑํ ๋ค์, ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ํจ๋ฆฌํฐ ๊ฒ์ฌ๋ฅผ ์ํํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ๊ฐ๋ ์ ์ผ๋ก๋ ๊ฐ๋จํ์ง๋ง, Shor ์ฝ๋๋ ํ์ํ ํ๋นํธ ์๊ฐ ๋ง์ ์์ ์ง์ฝ์ ์ ๋๋ค.
์์:
๋ ผ๋ฆฌ |0โฉ ์ํ๋ฅผ ์ธ์ฝ๋ฉํ๊ธฐ ์ํด Shor ์ฝ๋๋ ๋ค์ ๋ณํ์ ์ฌ์ฉํฉ๋๋ค:
|0โฉL = (|000โฉ + |111โฉ)(|000โฉ + |111โฉ)(|000โฉ + |111โฉ) / (2โ2)
์ ์ฌํ๊ฒ, ๋ ผ๋ฆฌ |1โฉ ์ํ์ ๊ฒฝ์ฐ:
|1โฉL = (|000โฉ - |111โฉ)(|000โฉ - |111โฉ)(|000โฉ - |111โฉ) / (2โ2)
์ค๋ฅ ๊ฐ์ง๋ ์ธ ๊ฐ์ ํ๋นํธ ๊ฐ ๊ทธ๋ฃน์์ ํ๋นํธ์ ํจ๋ฆฌํฐ๋ฅผ ์ธก์ ํ์ฌ ์ด๋ฃจ์ด์ง๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋นํธ 1, 2, 3์ ํจ๋ฆฌํฐ๋ฅผ ์ธก์ ํ๋ฉด ํด๋น ๊ทธ๋ฃน์์ ๋นํธ ํ๋ฆฝ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ๊ฐ ๋๋ฌ๋ฉ๋๋ค. ์ ์ฌํ ํจ๋ฆฌํฐ ๊ฒ์ฌ๊ฐ ์์ ํ๋ฆฝ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ์ํ๋ฉ๋๋ค.
Steane ์ฝ๋
Steane ์ฝ๋๋ ํ๋์ ๋ ผ๋ฆฌ ํ๋นํธ๋ฅผ ์ธ์ฝ๋ฉํ๊ธฐ ์ํด 7๊ฐ์ ๋ฌผ๋ฆฌ์ ํ๋นํธ๋ฅผ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ์ด๊ธฐ QEC ์ฝ๋์ ๋๋ค. ์ด ์ฝ๋๋ ๋จ์ผ ํ๋นํธ ์ค๋ฅ(๋นํธ ํ๋ฆฝ ๋ฐ ์์ ํ๋ฆฝ ๋ชจ๋)๋ฅผ ์์ ํ ์ ์์ต๋๋ค. Steane ์ฝ๋๋ ๊ณ ์ ์ ์ธ ์ค๋ฅ ์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ํ๋นํธ ์ค๋ฒํค๋ ์ธก๋ฉด์์ Shor ์ฝ๋๋ณด๋ค ํจ์จ์ ์ ๋๋ค. Steane ์ฝ๋์ ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ ํ๋ก๋ ํ์ค ์์ ๊ฒ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค.
Steane ์ฝ๋๋ 1๊ฐ์ ๋ ผ๋ฆฌ ํ๋นํธ๋ฅผ 7๊ฐ์ ๋ฌผ๋ฆฌ์ ํ๋นํธ์ ์ธ์ฝ๋ฉํ๊ณ ์ต๋ 1๊ฐ์ ์ค๋ฅ๋ฅผ ์์ ํ ์ ์๋ [7,1,3] ์์ ์ฝ๋์ ๋๋ค. ์ด๋ ๊ณ ์ ์ ์ธ [7,4,3] Hamming ์ฝ๋๋ฅผ ํ์ฉํฉ๋๋ค. Hamming ์ฝ๋์ ์์ฑ ํ๋ ฌ์ด ์ธ์ฝ๋ฉ ํ๋ก๋ฅผ ์ ์ํฉ๋๋ค.
ํ๋ฉด ์ฝ๋
ํ๋ฉด ์ฝ๋๋ ์ค์ฉ์ ์ธ ์์ ์ปดํจํฐ๋ฅผ ์ํ ๊ฐ์ฅ ์ ๋งํ QEC ์ฝ๋ ์ค ํ๋์ ๋๋ค. ๋์ ์ค๋ฅ ์๊ณ๊ฐ์ ๊ฐ์ง๊ณ ์์ด ๋ฌผ๋ฆฌ์ ํ๋นํธ์์ ์๋์ ์ผ๋ก ๋์ ์ค๋ฅ์จ์ ํ์ฉํ ์ ์์ต๋๋ค. ํ๋ฉด ์ฝ๋๋ ํ๋นํธ๋ฅผ 2์ฐจ์ ๊ฒฉ์ ์์ ๋ฐฐ์ดํ๋ฉฐ, ๋ฐ์ดํฐ ํ๋นํธ๋ ๋ ผ๋ฆฌ์ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ๊ณ , ๋ณด์กฐ ํ๋นํธ๋ ์ค๋ฅ ๊ฐ์ง์ ์ฌ์ฉ๋ฉ๋๋ค. ์ค๋ฅ ๊ฐ์ง๋ ์ธ์ ํ๋นํธ์ ํจ๋ฆฌํฐ๋ฅผ ์ธก์ ํ์ฌ ์ํ๋๋ฉฐ, ์ค๋ฅ ์์ ์ ๊ฒฐ๊ณผ ์ค๋ฅ ์ฆํ๊ตฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ฉ๋๋ค.
ํ๋ฉด ์ฝ๋๋ ์์ ์ฝ๋(topological codes)๋ก, ์ธ์ฝ๋ฉ๋ ์ ๋ณด๊ฐ ํ๋นํธ ๋ฐฐ์ด์ ์์(topology)์ ์ํด ๋ณดํธ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๊ตญ์ ์ค๋ฅ์ ๊ฐํ๊ณ ํ๋์จ์ด์ ๊ตฌํํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
ํ๋นํธ ์์ ํ ๊ธฐ์
ํ๋นํธ ์์ ํ๋ ํ๋นํธ์ ๊ฒฐ๋ง์ ์๊ฐ์ ์ฐ์ฅํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ฉฐ, ์ด๋ ํ๋นํธ๊ฐ ์ค์ฒฉ ์ํ๋ฅผ ์ ์งํ ์ ์๋ ๊ธฐ๊ฐ์ ๋๋ค. ํ๋นํธ๋ฅผ ์์ ํํ๋ฉด ์ค๋ฅ ๋ฐ์ ๋น๋๋ฅผ ์ค์ด๊ณ ์์ ๊ณ์ฐ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ํ๋นํธ๋ฅผ ์์ ํํ๋ ๋ฐ ์ฌ๋ฌ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
- ๋์ ๋ถ๋ฆฌ(Dynamic Decoupling): ์ด ๊ธฐ์ ์ ํ๊ฒฝ ๋ ธ์ด์ฆ์ ์ํฅ์ ์์ํ๊ธฐ ์ํด ํ๋นํธ์ ์ ์คํ๊ฒ ์๊ฐ์ ๋ง์ถ ์ผ๋ จ์ ํ์ค๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ํ์ค๋ ํจ๊ณผ์ ์ผ๋ก ๋ ธ์ด์ฆ๋ฅผ ํ๊ท ํํ์ฌ ๊ฒฐ๋ง์ ์์ค์ ๋ฐฉ์งํฉ๋๋ค.
- ๋ฅ๋ ํผ๋๋ฐฑ(Active Feedback): ๋ฅ๋ ํผ๋๋ฐฑ์ ํ๋นํธ์ ์ํ๋ฅผ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ์ค์๊ฐ์ผ๋ก ์์ ์กฐ์น๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ๋น ๋ฅด๊ณ ์ ํํ ์ธก์ ๋ฐ ์ ์ด ์์คํ ์ ํ์๋ก ํ์ง๋ง, ํ๋นํธ ์์ ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๊ฐ์ ๋ ์ฌ๋ฃ ๋ฐ ์ ์กฐ: ๊ณ ํ์ง ์ฌ๋ฃ์ ๋ ์ ๋ฐํ ์ ์กฐ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ํ๋นํธ์ ๊ณ ์ ๋ ธ์ด์ฆ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋์์์์ ์ผ๋ก ์์ํ ์ฌ๋ฃ๋ฅผ ์ฌ์ฉํ๊ณ ํ๋นํธ ๊ตฌ์กฐ์ ๊ฒฐํจ์ ์ต์ํํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
- ๊ทน์ ์จ ํ๊ฒฝ: ์์ ์ปดํจํฐ๋ฅผ ๊ทนํ ๋ฎ์ ์จ๋์์ ์๋์ํค๋ฉด ๊ฒฐ๋ง์ ์์ค์ ์ฃผ์ ์์ธ์ธ ์ด ๋ ธ์ด์ฆ๊ฐ ๊ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ๋ ํ๋นํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๋ ์๋์ ๊ฐ๊น์ด ์จ๋์์ ์๋๋ฉ๋๋ค.
์์ ์ค๋ฅ ์์ ์ ์ํ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Python์ ์์ ์ค๋ฅ ์์ ์ฝ๋๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋นํธ ์ธ์ฝ๋ฉ, ์ค๋ฅ ๊ฐ์ง ์ํ ๋ฐ ์ค๋ฅ ์์ ์์ ์ ์ฉ์ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. QEC๋ฅผ ์ํ ์ธ๊ธฐ ์๋ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- Qiskit: Qiskit์ IBM์ด ๊ฐ๋ฐํ ํฌ๊ด์ ์ธ ์์ ์ปดํจํ ํ๋ ์์ํฌ์ ๋๋ค. ์ค๋ฅ ์์ ํ๋ก๋ฅผ ํฌํจํ์ฌ ์์ ํ๋ก๋ฅผ ์ค๊ณํ๊ณ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Qiskit์ QEC ์ฝ๋ ์ ์, ์์ ์ ์ธก์ ๊ตฌํ ๋ฐ ์ค๋ฅ ์์ ์๋ฎฌ๋ ์ด์ ์ํ์ ์ํ ๋ชจ๋์ ํฌํจํฉ๋๋ค.
- pyQuil: pyQuil์ Rigetti Computing์ ์์ ์ปดํจํฐ์ ์ํธ์์ฉํ๊ธฐ ์ํ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Quil ์์ ๋ช ๋ น์ด ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์คํํ ์ ์์ต๋๋ค. pyQuil์ ์ค์ ์์ ํ๋์จ์ด์์ QEC ์ฝ๋๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- PennyLane: PennyLane์ ์์ ๋จธ์ ๋ฌ๋์ ์ํ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์์ ์ ๊ฒฝ๋ง์ ๊ตฌ์ถํ๊ณ ํ๋ จํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์์ ์ค๋ฅ ์์ ๊ณผ ์์ ๋จธ์ ๋ฌ๋ ๊ฐ์ ์ํธ์์ฉ์ ํ๊ตฌํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- Stim: Stim์ QEC ํ๋ก, ํนํ ํ๋ฉด ์ฝ๋ ๋ฒค์น๋งํน์ ์ ์ฉํ ๋น ๋ฅธ ์์ ์ ํ๋ก ์๋ฎฌ๋ ์ดํฐ์ ๋๋ค. ๋งค์ฐ ๋์ ์ฑ๋ฅ์ ์๋ํ๋ฉฐ ๋งค์ฐ ํฐ ์์ ์์คํ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Python ์์: Qiskit์ผ๋ก QEC ๊ตฌํํ๊ธฐ
๋ค์์ Qiskit์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ QEC ์ฝ๋๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธฐ๋ณธ ์์์ ๋๋ค. ์ด ์์๋ 3๊ฐ์ ๋ฌผ๋ฆฌ์ ํ๋นํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋นํธ ํ๋ฆฝ ์ค๋ฅ๋ก๋ถํฐ ๋ณดํธํ๋ ๋นํธ ํ๋ฆฝ ์ฝ๋๋ฅผ ์์ฐํฉ๋๋ค.
from qiskit import QuantumCircuit, transpile, Aer, execute
from qiskit.providers.aer import QasmSimulator
# 3๊ฐ์ ํ๋นํธ์ 3๊ฐ์ ๊ณ ์ ๋นํธ๋ก ์์ ํ๋ก ์์ฑ
qc = QuantumCircuit(3, 3)
# ๋
ผ๋ฆฌ ํ๋นํธ ์ธ์ฝ๋ฉ (์: |0โฉ๋ฅผ |000โฉ์ผ๋ก ์ธ์ฝ๋ฉ)
# |1โฉ์ ์ธ์ฝ๋ฉํ๋ ค๋ฉด ์ธ์ฝ๋ฉ ์ ์ X ๊ฒ์ดํธ ์ถ๊ฐ
# ๋ ๋ฒ์งธ ํ๋นํธ์ ๋นํธ ํ๋ฆฝ ์ค๋ฅ ๋์
(์ ํ ์ฌํญ)
# qc.x(1)
# ์ค๋ฅ ๊ฐ์ง: ํ๋นํธ 0๊ณผ 1, ๊ทธ๋ฆฌ๊ณ 1๊ณผ 2์ ํจ๋ฆฌํฐ ์ธก์
qc.cx(0, 1)
qc.cx(2, 1)
# ๋ณด์กฐ ํ๋นํธ(ํ๋นํธ 1)๋ฅผ ์ธก์ ํ์ฌ ์ค๋ฅ ์ฆํ๊ตฐ ์ป๊ธฐ
qc.measure(1, 0)
# ์ฆํ๊ตฐ์ ๋ฐ๋ผ ์ค๋ฅ ์์
qc.cx(1, 2)
qc.cx(1, 0)
# ๋
ผ๋ฆฌ ํ๋นํธ(ํ๋นํธ 0) ์ธก์
qc.measure(0, 1)
qc.measure(2,2)
# ํ๋ก ์๋ฎฌ๋ ์ด์
simulator = Aer.get_backend('qasm_simulator')
transpiled_qc = transpile(qc, simulator)
job = simulator.run(transpiled_qc, shots=1024)
result = job.result()
counts = result.get_counts(qc)
print(counts)
์ค๋ช :
- ์ด ์ฝ๋๋ 3๊ฐ์ ํ๋นํธ๋ก ์์ ํ๋ก๋ฅผ ์์ฑํฉ๋๋ค. ํ๋นํธ 0์ ๋ ผ๋ฆฌ ํ๋นํธ๋ฅผ ๋ํ๋ด๋ฉฐ, ํ๋นํธ 1๊ณผ 2๋ ๋ณด์กฐ ํ๋นํธ์ ๋๋ค.
- ๋ ผ๋ฆฌ ํ๋นํธ๋ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ํ๋นํธ๋ฅผ ๋์ผํ ์ํ(์ฆ, |0โฉ๋ฅผ ์ธ์ฝ๋ฉํ๋ ค๋ ๊ฒฝ์ฐ |000โฉ ๋๋ |1โฉ๋ฅผ ์ธ์ฝ๋ฉํ๋ ค๋ ๊ฒฝ์ฐ |111โฉ)๋ก ์ค์ ํ์ฌ ๊ฐ๋จํ ์ธ์ฝ๋ฉ๋ฉ๋๋ค.
- ์ค์ ์ค๋ฅ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ํ๋นํธ์ ์ ํ์ ์ผ๋ก ๋นํธ ํ๋ฆฝ ์ค๋ฅ๊ฐ ๋์ ๋ฉ๋๋ค.
- ์ค๋ฅ ๊ฐ์ง๋ ํ๋นํธ 0๊ณผ 1, ๊ทธ๋ฆฌ๊ณ 1๊ณผ 2์ ํจ๋ฆฌํฐ๋ฅผ ์ธก์ ํ์ฌ ์ํ๋ฉ๋๋ค. ์ด๋ ํ๋นํธ๋ฅผ ์ฝํ๊ฒ ํ๊ณ ๋ ผ๋ฆฌ ํ๋นํธ๋ฅผ ์ง์ ์ธก์ ํ์ง ์๊ณ ๋ ํจ๋ฆฌํฐ๋ฅผ ์ธก์ ํ ์ ์๊ฒ ํ๋ CNOT ๊ฒ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
- ๋ณด์กฐ ํ๋นํธ๊ฐ ์ธก์ ๋์ด ์ค๋ฅ ์ฆํ๊ตฐ์ ์ป์ต๋๋ค.
- ์ค๋ฅ ์ฆํ๊ตฐ์ ๊ธฐ๋ฐ์ผ๋ก, ๋ ผ๋ฆฌ ํ๋นํธ์ ์๋ ์ํ๋ฅผ ๋ณต์ํ๊ธฐ ์ํด ๋ฌผ๋ฆฌ์ ํ๋นํธ์ ์์ ์์ ์ด ์ ์ฉ๋ฉ๋๋ค.
- ๋ง์ง๋ง์ผ๋ก, ๋ ผ๋ฆฌ ํ๋นํธ๊ฐ ์ธก์ ๋์ด ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.
์ด๊ฒ์ ๊ฐ์ํ๋ ์์์ด๋ฉฐ, ๋ ๋ณต์กํ QEC ์ฝ๋๋ ๋ ์ ๊ตํ ํ๋ก์ ์ค๋ฅ ์์ ์ ๋ต์ ํ์๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ QEC์ ๊ธฐ๋ณธ ์๋ฆฌ์ Qiskit๊ณผ ๊ฐ์ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ QEC ์ฒด๊ณ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๊ตฌํํ๋ ๋ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋ ์ ์๋์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์์ ์ค๋ฅ ์์ ์ ๋ฏธ๋
์์ ์ค๋ฅ ์์ ์ ๋ด๊ฒฐํจ์ฑ ์์ ์ปดํจํฐ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ค์ํ ํต์ฌ ๊ธฐ์ ์ ๋๋ค. ์์ ์ปดํจํฐ๊ฐ ๋ ์ปค์ง๊ณ ๋ณต์กํด์ง์ ๋ฐ๋ผ ํจ๊ณผ์ ์ธ QEC ์ ๋ต์ ํ์์ฑ์ ๋์ฑ ์ฆ๊ฐํ ๊ฒ์ ๋๋ค. ์ฐ๊ตฌ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ ๋ ๋์ ์ค๋ฅ ์๊ณ๊ฐ, ๋ ๋ฎ์ ํ๋นํธ ์ค๋ฒํค๋, ๊ทธ๋ฆฌ๊ณ ๋ ํจ์จ์ ์ธ ์ค๋ฅ ์์ ํ๋ก๋ฅผ ๊ฐ์ง ์๋ก์ด QEC ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ์ง์ค๋์ด ์์ต๋๋ค. ๋ํ, ์ฐ๊ตฌ์๋ค์ ํ๋นํธ ์์ ํ ๋ฐ ๊ฒฐ๋ง์ ์์ค ๊ฐ์๋ฅผ ์ํ ์๋ก์ด ๊ธฐ์ ์ ํ๊ตฌํ๊ณ ์์ต๋๋ค.
์ค์ฉ์ ์ธ QEC ์ฒด๊ณ์ ๊ฐ๋ฐ์ ์ค์ํ ๋์ ๊ณผ์ ์ด์ง๋ง, ์์ ์ปดํจํ ์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ์คํํ๋ ๋ฐ ํ์์ ์ ๋๋ค. QEC ์๊ณ ๋ฆฌ์ฆ, ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ๋๊ตฌ์ ์ง์์ ์ธ ๋ฐ์ ๊ณผ ํจ๊ป, ๋ด๊ฒฐํจ์ฑ ์์ ์ปดํจํฐ๋ฅผ ๊ตฌ์ถํ ๊ฐ๋ฅ์ฑ์ ์ ์ ๋ ํ์คํ๋๊ณ ์์ต๋๋ค. ๋ฏธ๋ ์์ฉ ๋ถ์ผ๋ ๋ค์์ ํฌํจํ ์ ์์ต๋๋ค:
- ์ ์ฝ ๊ฐ๋ฐ ๋ฐ ์ฌ๋ฃ ๊ณผํ: ๋ณต์กํ ๋ถ์์ ์ฌ๋ฃ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ ์ฝ ๋ฐ๊ฒฌ ๋ฐ ์๋ก์ด ์ฌ๋ฃ ์ค๊ณ.
- ๊ธ์ต ๋ชจ๋ธ๋ง: ํฌ์๋ฅผ ์ต์ ํํ๊ณ ์ํ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ ์ ํํ๊ณ ํจ์จ์ ์ธ ๊ธ์ต ๋ชจ๋ธ ๊ฐ๋ฐ.
- ์ํธํ: ๊ธฐ์กด ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ํด๋ ํ๊ณ ์๋ก์ด ์์ ๋ด์ฑ ์ํธํ ๋ฐฉ๋ฒ ๊ฐ๋ฐ.
- ์ธ๊ณต์ง๋ฅ: ๋ ๊ฐ๋ ฅํ๊ณ ์ ๊ตํ AI ๋ชจ๋ธ ํ๋ จ.
์์ ์ค๋ฅ ์์ ๋ถ์ผ์ ๊ธ๋ก๋ฒ ํ๋ ฅ
์์ ์ค๋ฅ ์์ ๋ถ์ผ๋ ๋ค์ํ ๋ฐฐ๊ฒฝ๊ณผ ๊ตญ๊ฐ์ ์ฐ๊ตฌ์ ๋ฐ ์์ง๋์ด๊ฐ ์ต์ฒจ๋จ ๊ธฐ์ ๋ฐ์ ์ ์ํด ํ๋ ฅํ๋ ์ ์ธ๊ณ์ ์ธ ๋ ธ๋ ฅ์ ๋๋ค. ๊ตญ์ ํ๋ ฅ์ ์ง์, ์์ ๋ฐ ์ ๋ฌธ ์ง์์ ๊ณต์ ํ๊ณ ์ค์ฉ์ ์ธ QEC ๊ธฐ์ ๊ฐ๋ฐ์ ๊ฐ์ํํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๊ธ๋ก๋ฒ ๋ ธ๋ ฅ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ณต๋ ์ฐ๊ตฌ ํ๋ก์ ํธ: ์ฌ๋ฌ ๊ตญ๊ฐ์ ์ฐ๊ตฌ์๋ค์ด ์ฐธ์ฌํ๋ ํ๋ ฅ ์ฐ๊ตฌ ํ๋ก์ ํธ. ์ด๋ฌํ ํ๋ก์ ํธ๋ ์ข ์ข ์๋ก์ด QEC ์ฝ๋ ๊ฐ๋ฐ, ๋ค์ํ ์์ ํ๋์จ์ด ํ๋ซํผ์์์ QEC ๊ตฌํ, ๊ทธ๋ฆฌ๊ณ ๋ค์ํ ๋ถ์ผ์์ QEC ์์ฉ ํ๊ตฌ์ ์ค์ ์ ๋ก๋๋ค.
- ์คํ ์์ค ์ํํธ์จ์ด ๊ฐ๋ฐ: Qiskit ๋ฐ pyQuil๊ณผ ๊ฐ์ QEC์ฉ ์คํ ์์ค ์ํํธ์จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋๊ตฌ ๊ฐ๋ฐ์ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ ๊ธฐ์ฌ๋ฅผ ํฌํจํ๋ ๊ธ๋ก๋ฒ ๋ ธ๋ ฅ์ ๋๋ค. ์ด๋ ์ฐ๊ตฌ์์ ์์ง๋์ด๊ฐ ์ต์ QEC ๊ธฐ์ ์ ์ฝ๊ฒ ์ ๊ทผํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ตญ์ ์ปจํผ๋ฐ์ค ๋ฐ ์ํฌ์: ๊ตญ์ ์ปจํผ๋ฐ์ค ๋ฐ ์ํฌ์์ ์ฐ๊ตฌ์๋ค์ด ์ต์ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ๊ณ QEC ๋ถ์ผ์ ๋์ ๊ณผ์ ๋ฐ ๊ธฐํ๋ฅผ ๋ ผ์ํ ์ ์๋ ํฌ๋ผ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ํ์ฌ๋ ํ๋ ฅ์ ์ด์งํ๊ณ ํ์ ์๋๋ฅผ ๊ฐ์ํํฉ๋๋ค.
- ํ์คํ ๋ ธ๋ ฅ: ๊ตญ์ ํ์คํ ๊ธฐ๊ด์ QEC ํ์ค์ ํฌํจํ์ฌ ์์ ์ปดํจํ ํ์ค์ ๊ฐ๋ฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ด๋ ๋ค์ํ ์์ ์ปดํจํ ์์คํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ ๋ฐ ํธํ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ ์ธ๊ณ์ ์ฐ๊ตฌ์์ ์์ง๋์ด๋ค์ ํ๋ ฅํ์ฌ ์์ ์ค๋ฅ ์์ ์ ๋ฐ์ ์ ๊ฐ์ํํ๊ณ ์ธ๋ฅ์ ์ด์ต์ ์ํด ์์ ์ปดํจํ ์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ์คํํ ์ ์์ต๋๋ค. ๋ถ๋ฏธ, ์ ๋ฝ, ์์์ ๋ฐ ํธ์ฃผ ๊ธฐ๊ด ๊ฐ์ ํ๋ ฅ์ ์ด ์ด๊ธฐ ๋ถ์ผ์ ํ์ ์ ์ฃผ๋ํ๊ณ ์์ต๋๋ค.
๊ฒฐ๋ก
์์ ์ค๋ฅ ์์ ์ ๋ด๊ฒฐํจ์ฑ ์์ ์ปดํจํฐ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ค์ํ ๊ธฐ์ ์ ๋๋ค. ํ๋นํธ ์์ ํ ๊ธฐ์ ์ ๊ณ ๊ธ QEC ์ฝ๋ ๋ฐ ์ํํธ์จ์ด ๋๊ตฌ์ ๊ฒฐํฉ๋์ด ๋ ธ์ด์ฆ ๋ฐ ๊ฒฐ๋ง์ ์์ค์ ์ํฅ์ ์ํํ๋ ๋ฐ ํ์์ ์ ๋๋ค. Qiskit ๋ฐ pyQuil๊ณผ ๊ฐ์ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ QEC ์ฒด๊ณ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๊ตฌํํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ ์ปดํจํ ๊ธฐ์ ์ด ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ QEC๋ ์ค์ฉ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๋ ์์ ์ปดํจํฐ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐ ์ ์ ๋ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ ๋๋ค. ๊ธ๋ก๋ฒ ํ๋ ฅ๊ณผ ์คํ ์์ค ๊ฐ๋ฐ์ ์ด ๋ถ์ผ์ ๋ฐ์ ์ ๊ฐ์ํํ๊ณ ์์ ์ปดํจํ ์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ์คํํ๋ ๋ฐ ํต์ฌ์ ๋๋ค.